<ng-container *ngIf="!type">
  <input nz-input nzSize="default"[ngClass]="class" [ngStyle]="style" [placeholder]="title"
    [(ngModel)]="module[data][name+'Cp']" [disabled]="disabled==data+'_dis'?module[data+'_dis'][name]:module[disabled]"
    *ngIf="!module[data+'_hid'][name]" autocomplete="off" (click)="inputClick()" (mouseenter)="this[random] = true"
    (mouseleave)="this[random] = false">
  <div [id]="iid" class="inputSvg" *ngIf="!module[data+'_hid'][name]">
    <ng-container *ngIf="disabled==data+'_dis'?module[data+'_dis'][name]:module[disabled]; else notMobile">
      <app-svg [module]="this" (outer)="resetData($event)" type="0"></app-svg>
    </ng-container>
  </div>
  <nz-select nzShowSearch nzAllowClear [ngClass]="class" [ngStyle]="style" [id]="iid" [(ngModel)]="module[data][name]"
    [disabled]="disabled==data+'_dis'?module[data+'_dis'][name]:module[disabled]" *ngIf="module[data+'_hid'][name]"
    [nzOpen]="module[data+'_hid'][name]" (ngModelChange)="selectClick()"
    (nzOpenChange)="module[data+'_hid'][name]=false;this[random] = false">
    <nz-option *ngFor="let option of module[listName][optionListName]" [nzValue]="option[optionValue]"
      [nzLabel]="option[optionName]">
    </nz-option>
  </nz-select>
</ng-container>

<ng-template #notMobile>
  <app-svg [module]="this" (outer)="resetData($event)"></app-svg>
</ng-template>

<ng-container *ngIf="type==='search'">
  <div style="position: relative;">
    <input nz-input nzSize="default" [ngClass]="class" [ngStyle]="style" [placeholder]="title" [id]="iid"
      [(ngModel)]="module[data][name+'Cp']" *ngIf="!searchHid" autocomplete="off" (click)="inputSearchClick()"
      (mouseenter)="this[random] = true" (mouseleave)="this[random] = false">
    <div [id]="iid" class="inputSvg" *ngIf="!searchHid">
      <app-svg [module]="this" (outer)="resetData($event)"></app-svg>
    </div>
    <nz-select nzShowSearch nzAllowClear [ngClass]="class" [ngStyle]="style" [id]="iid" [(ngModel)]="module[data][name]"
      *ngIf="searchHid" [nzOpen]="searchHid" (ngModelChange)="selectSearchClick()"
      (nzOpenChange)="searchHid=false;this[random] = false">
      <nz-option *ngFor="let option of module[listName][optionListName]" [nzValue]="option[optionValue]"
        [nzLabel]="option[optionName]">
      </nz-option>
    </nz-select>
  </div>
</ng-container>

<ng-container *ngIf="type==='function'">
  <input nz-input nzSize="default" [disabled]="module['isCourse_gn'+funNum]" [placeholder]="title" [id]="iid"
    [(ngModel)]="module['functionName'+funNum+'Cp']" style="width: 130px;" *ngIf="isCourse_gn" autocomplete="off"
    (click)="inputTypeClick()" (mouseenter)="this[random] = true" (mouseleave)="this[random] = false">
  <div [id]="iid" class="inputSvg" *ngIf="isCourse_gn">
    <ng-container *ngIf="module['isCourse_gn'+funNum]; else notMobile">
      <app-svg [module]="this" (outer)="resetData($event)" type="0"></app-svg>
    </ng-container>
  </div>
  <nz-select [disabled]="module['isCourse_gn'+funNum]" nzAllowClear [id]="iid"
    [(ngModel)]="module['functionName'+funNum]" style="width: 130px;" [compareWith]="compareFn" *ngIf="!isCourse_gn"
    [nzOpen]="!isCourse_gn" (ngModelChange)="selectTypeClick()" (nzOpenChange)="isCourse_gn=true;this[random] = false">
    <ng-container *ngFor="let option of module['functionData'+funNum]">
      <nz-option *ngIf="option.operationStutas=='T'" [nzValue]="option" [nzLabel]="option.operationName">
      </nz-option>
      <nz-option *ngIf="option.operationStutas=='F'" [nzValue]="option" [nzLabel]="option.operationName" nzDisabled>
      </nz-option>
    </ng-container>
  </nz-select>
</ng-container>

<ng-container *ngIf="type==='print' && module['printList'].length>0">
  <input nz-input nzSize="default" id="isCourse_gn" [disabled]="module['isCourse_gn']" [placeholder]="title" [id]="iid"
    *ngIf="isCourse_gn" (click)="inputTypeClick()" autocomplete="off" style="width: 130px;"
    (mouseenter)="this[random] = true" (mouseleave)="this[random] = false">
  <div [id]="iid" class="inputSvg" *ngIf="isCourse_gn">
    <ng-container *ngIf="module['isCourse_gn']; else notMobile">
      <app-svg [module]="this" (outer)="resetData($event)" type="0"></app-svg>
    </ng-container>
  </div>
  <nz-select [nzDisabled]="module['isCourse_gn']" nzAllowClear [id]="iid" [(ngModel)]="printName" style="width: 130px;"
    [compareWith]="compareFn" *ngIf="!isCourse_gn" [nzOpen]="!isCourse_gn" (ngModelChange)="printChange($event)"
    (nzOpenChange)="isCourse_gn=true;this[random] = false">
    <nz-option *ngFor="let option of module['printList']" [nzValue]="option['optionValue']"
      [nzLabel]="option['optionName']">
    </nz-option>
  </nz-select>
</ng-container>



<!-- 
  
  通用select极简用法：

  表单区域：
  <app-cp-select [module]="this" data="data1" name="licType"></app-cp-select>

  搜索区域：
  <app-cp-select [module]="this" data="searchData" name="vdeStatus" title="采购商状态" listName="data1_sel" type="search"></app-cp-select>

  功能操作（整区域）：
  <app-cp-select [module]="this" data="data1" title="功能" type="function"></app-cp-select>
  多个功能：
  <app-cp-select [module]="this" data="data1" title="功能" type="function" num="2"></app-cp-select>

  自定义属性（整区域）：
  <app-cp-select [module]="this" data="data1" type="att"></app-cp-select>

  通用select自定义拓展用法（参数选填）：
  <app-cp-select [module]="this" data="data1" name="licType" (outer)="demo($event)" class="aaa bbb" css="float:left;width: 200px;" iid="aaa" title="默认提示文字"
   disabled="isCourse0" optionName="optionName" optionValue="optionValue" listName="data1_sel" optionListName="licType" type="att"></app-cp-select>

  (outer)="demo($event)"          select控件选择触发事件
  class="aaa bbb"                 input及select控件自定义class样式
  css="float:left;width: 200px;"  input及select控件自定义内联样式，等同于style="float:left;width: 200px;"
  iid="aaa"                        input及select控件自定义id名称
  title="默认提示文字              input及select控件默认提示文字
  disabled="isCourse0"            input及select控件禁用属性自定义名称
  listName="data1_sel"            select控件下拉数据集合名
  optionListName="licType"        select控件下拉数据集合取值自定义字段名
  optionName="optionName"         select控件下拉Name取值自定义字段名
  optionValue="optionValue"       select控件下拉Value取值自定义字段名
  type="att"                      select控件类型，示例为表格“功能”类型:function功能，att模块自定义属性,search搜索区域


 -->